Enterprise resource planning (“ERP”) systems are designed to coordinate some or all of the resources, information, and activities needed to complete business processes. An ERP system may support business functions including some or all of manufacturing, supply chain management, financials, projects, human resources, customer relationship management, and the like.
Many ERP systems provide a native application programming interface (“API”) that developers may use to read, write, update, and/or remove data objects on the database level. Some ERP systems may also provide a native API that developers may use for observing, automating, and/or emulating user interactions with the ERP system, such as through a graphical user interface (“GUI”). For example, ERP Servers provided by SAP AG of Weinheim, Germany, typically expose a native API via remote function calls (“RFC”). An RFC is a procedure for data interchange (typically via a TCP/IP connection) between a client (typically an SAP client) and a server (typically an SAP server).
In addition, some ERP systems may expose some or all of a native API as a general-purpose, static “web service”, which can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. When using such a web service, clients and servers commonly communicate over the Hypertext Transfer Protocol (“HTTP”) protocol.
There are several web service variants. In one variant, which has been popular with traditional enterprise, clients and servers communicate via Extensible Markup Language (“XML”) messages that follow the Simple Object Access Protocol (“SOAP”) standard. In such systems, there is often a machine-readable description of the operations offered by the service written in the Web Services Description Language (“WSDL”).
Another web service variant conforms to Representational State Transfer (“REST”) constraints and uses HTTP methods such as PUT, GET, DELETE, and POST instead of SOAP messages. RESTful web services may or may not use WSDL definitions and/or XML or JavaScript Object Notation (“JSON”) messages.
Using native APIs such as those described above, it is often possible for developers to create custom forms and/or program custom clients to enable users to perform specific transactions with the ERP system. However, it can be difficult and/or expensive to have developers implement custom interfaces for interacting with an ERP system via a native-API, even an API that is exposed via a web service. Consequently, many businesses must maintain an expensive information technology department and/or use expensive outside consultants to facilitate custom ERP interface development.